The present invention is directed to global resource management of distributed data processing systems.
Continuous multimedia applications are being developed for entertainment (e.g., video-on-demand services), for office automation (e.g., video conferencing), for crisis management, for command and control, and the like. In these continuous multimedia applications, video, audio, and/or image streams are processed within a node and between nodes of a data processing system.
Some continuous multimedia applications are mission critical and some are not. For example, the continuous multimedia applications being developed for entertainment (e.g., video-on-demand services), for office automation (e.g., video conferencing), and the like, are not particularly mission-critical. By contrast, the continuous multimedia applications being developed for crisis management, for command and control, and the like, are often mission critical. Mission-critical continuous multimedia applications are becoming increasingly important.
Mission-critical continuous multimedia applications have at least three unique characteristicsxe2x80x94they are criticality driven, they are dynamic, and they operate in real time. With respect to the first of these unique characteristics, media streams in mission-critical continuous multimedia applications may be associated with an attribute of criticality. Criticality is an indication of the importance of a particular application being executed at a given time, and is assigned to the application by a system administrator (or mediator) who reviews all applications to determine the criticality differences between them. For instance, an application which is performing periodic image-capturing and flaw detection in a process control can be more important than an application that monitors floor activities in a controlled plant. Consequently, the periodic image-capturing and flaw detection stream is assigned a higher criticality level by the system administrator than is the video stream relating to the monitored floor activities. In order to support different criticality levels, the data processing system which processes such media streams must be criticality cognitive and must be able to support plural critical multimedia data streams in the presence of multiple service requests.
With respect to the second of these unique characteristics, mission-critical continuous multimedia applications are often dynamic and may vary greatly in their demands on the local resources of the data processing system. In digital battlefield management, for example, detection of a mobile target may trigger a sequence of reactions, such as video monitoring, infrared tracking, image library retrieval for target matching and recognition, media data fusion and filtering, and command and control. Such dynamic demands on the local resources of the data processing system are not predictable a priori, and, therefore, require applications to negotiate on line for, and adapt to, the available local resources, which may include disk i/o bandwidth, CPU cycles, memory space, video compression/decompression capacity, network bandwidth, and the like. Without sufficient resources and proper resource management, multimedia streams may lose their data or timeliness in a random fashion, causing application malfunction.
With respect to the third of these unique characteristics, mission-critical continuous multimedia applications must operate according to a guaranteed latency and data flow rate. Latency is the end-to-end delay from the time when the very first media unit is produced at a stream source to the time it reaches a stream destination. Rate is the number of media data units per second that are processed by a processing node.
Moreover, when execution of an application requires resources of more than one node of a distributed data processing system, the execution of the application by those nodes must be coordinated. Otherwise, execution of the application may fail because one of the nodes, which is to participate in the execution of the application but which does not have the resources allocated for the application, may undermine the execution devoted by the other nodes. This problem becomes increasingly severe as the number of applications to be concurrently executed across the distributed data processing system increases.
The present invention is directed to a global resource management arrangement that coordinates demands on resources of a distributed data processing system in a deterministic, adaptive manner (according to, for example, an application""s QoS, timing, and criticality requirements).
According to one aspect of the present invention, a method of managing a session by global resources in first and second phases comprises the following steps: a) negotiating among first, second, and third nodes for a QoS of the session during the first phase by ripple scheduling the session down from the first node to the second node and from the second node to the third node and then up from the third node to the second node and from the second node to the first node; b) if the first, second, and third nodes can execute the session, sending a commit message during the second phase from the first node to the second node and from the second node to the third node; and, c) if the first or second or third node cannot execute the session, sending an abort message during the second phase from the first node to the second node and from the second node to the third node.
According to another aspect of the present invention, a node is arranged to conduct a ripple QoS negotiation of a session with other nodes through at least three layers of nodes. The node is in one of the at least three layers. The node sends a commit message through the at least three layers if, as a result of the ripple QoS negotiation, the session can be executed by the node and by the other nodes in the at least three layers. The node sends an abort message through the at least three layers if, as a result of the ripple QoS negotiation, the node or any of the other nodes in the at least three layers cannot execute the session.